<?php
	
	/* acao login */
	class LoginController{

		public function entrar()
		{
			include_once("./View/FormLogin.php");
		}

		public function validaLogin(){

			$login = isset($_POST["login"]) ? trim($_POST["login"]) : "";
			$senha = isset($_POST["senha"])	? trim($_POST["senha"]) : "";
			
			if ($login == "admin" && $senha == "admin") 
			{
				$_SESSION["logado"] = true;	
				header("location:AcaoHome.php");
			}else{
				$_SESSION["logado"] = false;	
				$this->entrar();
				echo "Login ou senha inválido!";			
			}		
		}

		public function sair()
		{
			$_SESSION["logado"] = false;	
			$this->entrar();			
    	}
	}
/*---------------------------------------------------------------------------------------------------------------------*/

	/* AcaoConttroller */
	include_once("./Controller/ClienteController.php");
	$metodo = isset($_REQUEST["metodo"]) ? $_REQUEST["metodo"] : "";
	
	$clienteController = new ClienteController();
	
	switch ($metodo) {
		case "listar":
			$clienteController->listar();
		break;

		case "salvar":
			$clienteController->salvar();		
		break;

		case "alterar":			
			$clienteController->alterar();
		break;

		case "excluir":
			$clienteController->excluir();			
		break;

		case "cadastrar":	
			$clienteController->cadastrar();		
		break;

		default:
			$clienteController->listar();
	}

/*---------------------------------------------------------------------------------------------------------------------*/

	/* ClienteController */
	include_once("./Model/Cliente.php");
	include_once("./DAO/ClienteDAO.php");
	include_once("./Util/Lista.php");
	class ClienteController{

		private $cliente;
		private $clientes = array();

		public function __construct()
		{$this->cliente = new Cliente();}

		public function cadastrar(){
			include_once("./View/FormCliente.php");
		}

		public function alterar(){
			$codigo = isset($_POST["codigo"]) ? $_POST["codigo"] : false;	
			
			$clienteDAO = new ClienteDAO();
			$this->cliente = $clienteDAO->recuperar($codigo);	

			include_once("./View/FormCliente.php");

		}

		public function excluir(){
			$codigo	= isset($_POST["codigo"]) ? $_POST["codigo"] : false;
		
			$clienteDAO = new ClienteDAO();
			if(!$clienteDAO->excluir($codigo))
				exit("Erro ao excluir Cliente!");

			$this->listar();				
				
		}

		public function salvar(){
			$codigo 		= isset($_POST["codigo"]) 		? trim($_POST["codigo"]) 		: "";
			
			if( empty($nome) )
				$erro.="Nome deve ser Preenchido!<br/>";

			$this->cliente->setCodigo($codigo);	
				
			if( empty($erro) )
			{
				$clienteDAO = new ClienteDAO();
				$clienteDAO->salvar($this->cliente);
				$this->listar();
			}else{
				$this->cadastrar();
			}	
		}

		public function listar(){

			$clienteDAO = new ClienteDAO();
			$this->clientes = $clienteDAO->listar();

			include_once("./View/ListaCliente.php");	
		}
/*---------------------------------------------------------------------------------------------------------------------*/

	/* View 
	
	Form Cliente
	*/

	<form action="" method="POST">
		<input type="hidden" name="metodo" value="salvar"/>
		<table border="0">
			<tr>
				<td align="right">
					<label> Código </label>
				</td>
				<td>
					<input name="codigo" type="text" value="<?php echo $this->cliente->getCodigo(); ?>" readonly/>
				</td>
			</tr>		

/*---------------------------------------------------------------------------------------------------------------------*/
	/* Model */	
	class Cliente{

		private $codigo;
		private $nome;

		public function Cliente()
		{
			$this->setSexo("M");
			$this->setReceberEmail("S");
		}

		public function setCodigo( $codigo ){
			$this->codigo = $codigo;
		}
	}	
/*---------------------------------------------------------------------------------------------------------------------*/			
	/* DAO */	
	include_once("Conexao.php");

	class ClienteDAO extends Conexao{

		public function ClienteDAO(){
			$this->conecta();
		}

		public function salvar(Cliente $cliente)
		{
			if($cliente->getCodigo())
			{
				$sql = "UPDATE cliente SET 
							nome   			= '" . $cliente->getNome() 			. "',
							receberEmail 	= '" . $cliente->getReceberEmail() 	. "'
						WHERE codigo = " . $cliente->getCodigo();

				$resultado = mysql_query($sql,$this->conexao);

			}else{
				$sql = "INSERT INTO cliente(
							nome,
							receberEmail
						) VALUES(
							'". $cliente->getNome() 		."',
							'". $cliente->getReceberEmail() ."'
						)";

						$resultado = mysql_query($sql,$this->conexao);	
			}
		}

		public function excluir( $codigo )
		{
			$sql = "DELETE FROM cliente WHERE codigo = {$codigo}";
			$resultado = mysql_query($sql,$this->conexao);

			return mysql_affected_rows() == 1;
		}

		public function recuperar( $codigo )
		{
			$sql = "SELECT * FROM cliente WHERE codigo={$codigo}";
			$resultado = mysql_query($sql,$this->conexao);

			$dados = mysql_fetch_assoc($resultado);

			$cliente = new Cliente();
			$cliente->setCodigo($dados["codigo"]);

			return $cliente;
		}

		public function listar()
		{
			$sql = "SELECT * FROM cliente ORDER BY nome";
			$resultado = mysql_query($sql,$this->conexao);

			$clientes = array();

			while ($dados = mysql_fetch_assoc($resultado)) 
			{
				$cliente = new Cliente();
				$cliente->setCodigo($dados["codigo"]);

				$clientes[] = $cliente;
			}

			return $clientes;
		}
	}
?>